package upc.jfactory.scp.form;

import com.icesoft.faces.component.ext.RowSelectorEvent;
import java.util.ArrayList;
import java.util.List;
import javax.faces.context.FacesContext;
import upc.jfactory.scp.bl.facade.ContratacionFacade;
import upc.jfactory.scp.bl.facade.PostulacionFacade;
import upc.jfactory.scp.entidad.Postulanteof;
import upc.jfactory.scp.jpa.bean.Contratacion;

/**
 *
 * @author ${user}
 */
public class FormVerPostulantes {


  private List<Postulanteof>  listadoPostulantes = new ArrayList<Postulanteof>();
  private Postulanteof postulante= new Postulanteof();
  //para el popUp
    private Boolean isPopUpVisible;
    private Boolean isPopUp2Visible;
    private Boolean isPopUpVisible3;
    private Boolean isPopUpVisible4;
    private Boolean btnVisible;
    private Boolean btnVisible3;
    private Boolean btnVisible4;
    private String texto;
    //modo de visibilidad del boton y manejo del Popup
    private int modo;
  
    public FormVerPostulantes(){
         PostulacionFacade postfachada= PostulacionFacade.getInstance();
        setListadoPostulantes(postfachada.getPostulacionesxEmpresa());
isPopUpVisible = false;
isPopUpVisible3 = false;
isPopUpVisible4 = false;
        isPopUp2Visible=false;
        texto="Esta seguro de contratar a este alumno?";
        modo=1;
    }

    public Postulanteof getPostulante() {
        return postulante;
    }

    public void setPostulante(Postulanteof postulante) {
        this.postulante = postulante;
    }
    

public String Contratar(){
    if(modo==1){
        try {
            Contratacion contrato = new Contratacion();
            contrato.setOfertaempresaId(postulante.getIdPuestoOfertado());
            contrato.setPostulanteId(postulante.getIdAlumno());
            ContratacionFacade contfachada = ContratacionFacade.getInstance();
            contfachada.Contratar(contrato);
            texto = "Se contrato con exito";
            modo = 2;
            btnVisible3 = false;
        } catch (Exception e) {
            texto= "No se pudo contratar";
        }
return "contratar";
    }
    else{
                    closePopup3();
                       return "contratar";
    }

}
public String rechazar(){
    if(modo==1){
        try {
    PostulacionFacade postfachada= PostulacionFacade.getInstance();
    postfachada.BorrarPostulacion(postulante.getIdpostulacion());
            texto = "Se rechazo al alumno con exito";
            modo = 2;
            btnVisible4 = false;
        } catch (Exception e) {
            texto= "No se pudo rechazar";
        }
return "rechazar";
}else{
    closePopup4();
    return "rechazar";
}
}

public String detallealumno(){
return "detalle";
}
public void closePopup() {
        isPopUpVisible=false;
    }
public void setPostulanteSeleccionar(RowSelectorEvent ev){

        postulante = null;
        modo=1;
        for (Postulanteof oferta : listadoPostulantes) {
            if(oferta.isSelected()==true)
            {
                postulante = oferta;
                System.out.println(postulante.getIdPuestoOfertado());
            }
        }}


    public Boolean getBtnVisible3() {
        return btnVisible3;
    }

    public void setBtnVisible3(Boolean btnVisible3) {
        this.btnVisible3 = btnVisible3;
    }

    public Boolean getBtnVisible4() {
        return btnVisible4;
    }

    public void setBtnVisible4(Boolean btnVisible4) {
        this.btnVisible4 = btnVisible4;
    }

      public void closePopup2() {
        isPopUp2Visible=false;
    }
      public void openPopup2() {

         isPopUp2Visible=true;
    }
      public void openPopup() {


         isPopUpVisible=true;
         btnVisible=true;

    }
      public void openPopup3() {


         isPopUpVisible3=true;
         btnVisible3=true;

    }
      public void openPopup4() {


         isPopUpVisible4=true;
         btnVisible4=true;

    }
public void closePopup3() {
        isPopUpVisible3=false;
    }
public void closePopup4() {
        isPopUpVisible4=false;
    }
    public Boolean getIsPopUpVisible3() {
        return isPopUpVisible3;
    }

    public void setIsPopUpVisible3(Boolean isPopUpVisible3) {
        this.isPopUpVisible3 = isPopUpVisible3;
    }

    public Boolean getIsPopUpVisible4() {
        return isPopUpVisible4;
    }

    public void setIsPopUpVisible4(Boolean isPopUpVisible4) {
        this.isPopUpVisible4 = isPopUpVisible4;
    }

    public Boolean getBtnVisible() {
        return btnVisible;
    }

    public void setBtnVisible(Boolean btnVisible) {
        this.btnVisible = btnVisible;
    }

    public Boolean getIsPopUp2Visible() {
        return isPopUp2Visible;
    }

    public void setIsPopUp2Visible(Boolean isPopUp2Visible) {
        this.isPopUp2Visible = isPopUp2Visible;
    }

    public Boolean getIsPopUpVisible() {
        return isPopUpVisible;
    }

    public void setIsPopUpVisible(Boolean isPopUpVisible) {
        this.isPopUpVisible = isPopUpVisible;
    }

    public int getModo() {
        return modo;
    }

    public void setModo(int modo) {
        this.modo = modo;
    }

    public String getTexto() {
        return texto;
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }


public String accionentrevista(){
    FacesContext context = FacesContext.getCurrentInstance();
      modo=1;
      texto="Está seguro de Entrevistar a este Alumno?";
      btnVisible=true;
      openPopup();
return "entrevistar";
}
public String accionrechazo(){
    FacesContext context = FacesContext.getCurrentInstance();
      modo=1;
      texto="Está seguro de Rechazar a este Alumno?";
      btnVisible4=true;
      openPopup4();
return "rechazar";

}
public String accioncontrato(){
FacesContext context = FacesContext.getCurrentInstance();
      modo=1;
      texto="Está seguro de Contratar a este Alumno?";
      btnVisible3=true;
      openPopup3();
return "contratar";
}


    public List<Postulanteof> getListadoPostulantes() {
        return listadoPostulantes;
    }

    public void setListadoPostulantes(List<Postulanteof> listadoPostulantes) {
        this.listadoPostulantes = listadoPostulantes;
    }


}
